

# ????获取查询用户
from rest_framework.generics import ListCreateAPIView

from apps.meiduo_admin.serializers.users_serializers import UserSerializer, UserAddSerializer
from apps.meiduo_admin.utils.pagenum import PageNum
from apps.users.models import User


class UsersView(ListCreateAPIView):
    #指定使用的序列化器
    serializer_class = UserSerializer
    #指定分页器
    pagination_class = PageNum
    # 重写get_queryset方法，根据前端是否传递keyword值返回不同查询结果
    # 视图执行的时候会为视图对象添加request属性
    def get_queryset(self):
        # 获取前端的keyword   从self中取查询参数传参
        keyword = self.request.query_params.get("keyword")
        if keyword == '' or keyword == None:
            return User.objects.all()
        else:
            return User.objects.filter(username__contains=keyword,is_staff=False).order_by("id")
        # 用方法指定序列化器
    def get_serializer_class(self):
        # 请求方式是GET，则是获取用户数据返回UserSerializer
        if self.request.method == 'GET':
            return UserSerializer
        else: # POST请求，完成保存用户，返回UserAddSerializer
            return UserAddSerializer